package process

import "fmt"

var userMgr *UserMgr

//处理用户id在线显示列表
type UserMgr struct {
	onlineUsers map[int]*UserProcess
}

//初始化userMgr
func init()  {
	userMgr = &UserMgr{onlineUsers: make(map[int]*UserProcess,1024)}
}

//关联方法，对onlineUsers添加
func (this *UserMgr) AddOnlineUser(up *UserProcess)  {
	this.onlineUsers[up.UserId] = up
}

//关联方法，对onlineUsers删除
func (this *UserMgr) DelOnlineUser(userid int)  {
	delete(this.onlineUsers, userid)
}


//关联方法，对onlineUsers查询并返回
func (this *UserMgr) GetAllOnlineUser() map[int]*UserProcess {
	return this.onlineUsers
}

//根据ID返回对应的值
func (this *UserMgr) GetOnlineUserById(userId int) (up *UserProcess, err error) {
	//如何从map取出一个值，带检测方法
	up, ok := this.onlineUsers[userId]
	if !ok { //说明，你要查找的用户当前不在线
		err = fmt.Errorf("用户%d 不存在", userId)
		return
	}
	return
}